1. Technical Field
The present invention is directed toward the field of synchronizing data records stored in a plurality of electronic databases. More specifically, the invention provides a system and method for synchronizing data records between multiple databases in which a plurality of synchronization parameters are appended to data records stored in the databases so that synchronization and subsequent conflict resolution processes can be accomplished in an efficient manner. The invention is particularly useful in a wireless communication environment in which data records are synchronized between one or more host systems coupled to a wired network and one or more portable data communication device coupled to a wireless network, or between multiple communication devices.
2. Description of the Related Art
Data record synchronization systems are known in this field. Generally, these systems utilize a single “change number” for maintaining synchronicity between data records stored on multiple databases. The change number is initially synchronized to a particular value (such as 1) when the records are stored to the databases. If the record is changed at one of the databases, the change number at that database is incremented, and a message is sent to the other databases indicating that a change has occurred to the particular data record.
The problem with these known synchronization systems is that when a conflict occurs (i.e., the same data record is simultaneously updated at more than one database), there must be multiple (usually at least three) exchanges of information between the databases in order to resolve the conflict. For example, consider a typical synchronization process between two databases—A and B. A data record is updated at database A. Database A then transmits an update message to database B indicating that the particular record has been updated. Database B examines the update message (which typically includes the change number associated with the data record at database A, and the new data record), and either accepts the update or rejects it depending upon whether a conflict has occurred. If database B accepts the update, then it sends an acknowledgement message back to database A indicating the change has been accepted. It database B rejects the update, then a negative acknowledgement message is sent to database A. Database A then sends a formal acknowledgement back to database B indicating that it received the message from database B. This typifies the traditional three-way handshake used in present synchronization systems.
This type of synchronization process is particularly problematic in the wireless field where high transmission latency is the norm, and thus conflicts between databases are very likely. For this type of system, the standard three-way synchronization process is inefficient and inadequate for maintaining synchronicity between data records, and for resolving conflicts between multiple updates to the same data record.
Therefore, there remains a general need in this field for a system and method for synchronizing data records between multiple databases in which conflicts can be efficiently resolved.